package com.heima.model.wemedia.pojos;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.StringSerializer;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import org.apache.ibatis.type.Alias;

import java.util.Date;

@Data
@TableName("wm_news")
public class WmNews {
    /**
     * 文章 id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @TableField(value = "user_id")
    /**
     * 用户 id
     */
    private Integer userId;
    /**
     * 文章标题
     */
    @TableField("title")
    private String title;
    /**
     * 文章内容
     */
    @TableField("content")
    private String content;
    /**
     * 文章类型 【0(无图)、1(单图)、3(三图)】
     */
    @TableField("type")
    private Short type;
    /**
     *  文章所在频道
     */
    @TableField("channel_id")
    private Integer channelId;
    /**
     *
     */
    @TableField("labels")
    private String labels;
    /**
     * 文章的创建时间
     */
    @TableField("created_time")
    private Date createdTime;
    /**
     * 文章的提交时间
     */
    @TableField("submitted_time")
    private Date submittedTime;
    /**
     * 文章状态
     *             0 草稿
     *             1 提交（待审核）
     *             2 审核失败
     *             3 人工审核
     *             4 人工审核通过
     *             8 审核通过（待发布）
     *             9 已发布
     */
    @TableField("status")
    private Short status;
    /**
     * 定时发布时间，不定时为 null
     */
    @TableField("publish_time")
    private Date publishTime;
    /**
     * 拒绝理由
     */
    @TableField("reason")
    private String reason;
    /**
     * 文章作者 id
     */
    @TableField("article_id")
    private Long articleId;
    /**
     * 封面图片字符串
     */
    @TableField("images")
    private String images;
    /**
     * 上架状态，0 - 未上架
     *          1 - 已上架
     */
    @TableField("enable")
    private  Short enable;

    //状态枚举类***
    @Alias("WmNewsStatus")
    public enum Status{
        NORMAL((short)0),SUBMIT((short)1),FAIL((short)2),ADMIN_AUTH((short)3),ADMIN_SUCCESS((short)4),SUCCESS((short)8),PUBLISHED((short)9);
        short code;
        Status(short code){
            this.code = code;
        }
        public short getCode(){
            return this.code;
        }
    }
}
